table of contents
SETREUID(2) | Руководство программиста Linux | SETREUID(2) |
НАЗВАНИЕ¶
setreuid, seteuid - установить действительный и/или фактический идентификатор пользователя
КРАТКАЯ СВОДКА¶
#include <sys/types.h>
#include <unistd.h>
int setreuid(uid_t ruid, uid_t
euid);
int seteuid(uid_t euid);
ОПИСАНИЕ¶
setreuid устанавливает действительный и фактический идентификаторы владельца текущего процесса. Непривилегированные пользователи могут изменять действительный идентификатор владельца на фактический и наоборот.
В Linux версий раньше 1.1.37 парадигма сохраненных идентификаторов, при использовании с setreuid или seteuid, была некорректно реализована.
Начиная с 1.1.37, можно также устанавливать действительный идентификатор пользователя в сохраненный идентификатор пользователя.
Только суперпользователь может делать все другие изменения.
Передавая -1 в качестве действительного или фактического идентификатора пользователя оставляет соответствующий идентификатор без изменений.
В настоящий момент вызов seteuid(euid) функционально эквивалентен вызову setreuid(-1, euid).
Если действительный идентификатор пользователя изменяется или же фактический идентификатор пользователя устанавливается в значение, не равное предыдущему действительному идентификатору пользователя, то сохраненный идентификатор устанавливается в новый фактический идентификатор.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.
ОШИБКИ¶
- EPERM
- Текущий процесс не имеет прав суперпользователя и пытается выполнить что-то помимо (i) обмена фактического идентификатора на действительный, (ii) установки одного в значение другого, или же (iii) установки фактического идентификатора пользователя в значение сохраненного идентификатора.
СООТВЕТСТВИЕ СТАНДАРТАМ¶
BSD 4.3 (системный вызов setreuid впервые появился в 4.2BSD.)
СМОТРИ ТАКЖЕ¶
ПЕРЕВОД¶
Перевод Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 2000
2nd August 1994 | Linux 1.1.38 |